//
//  PublicUtil.h
//  BaseProject
//
//  Created by LiuLei on 16/5/17.
//  Copyright © 2016年 LiuLei. All rights reserved.
//

////////////  常用的功能集合   ////////////////

#import <Foundation/Foundation.h>

@interface PublicUtil : NSObject

/**
 *  数字格式化用 “，”分割
 */
+ (NSString *)formatFloatNum:(double)num;

/**
 *  得到用户手机IP
 *
 *  @return <#return value description#>
 */
+ (NSString *)getIPAddress;

#pragma mark -- 字典转JSON
+ (NSString*)dictionaryToJson:(NSDictionary *)dic;

#pragma mark -- 字符串尺寸
/**传入字符串、字体大小、宽度 返回Size*/
+ (CGSize)SizeForString:(NSString *)str WithFont:(UIFont *)font AndWidth:(NSInteger)width;

//  NSAttributedString 专用
+ (CGFloat)heightForLabelWithNSAttributedString:(NSAttributedString *)attrStr labelWidth:(CGFloat)labelWidth;

// 计算 text 对应的高度
+ (CGFloat)heightForCellWithText:(NSString *)contentText fontSize:(UIFont *)labelFont labelWidth:(CGFloat)labelWidth;

/**
 *  输入NSString类型 调整label的行间距并返回一个NSAttributedString
 *
 *  @param str   文字
 *  @param space 行间距
 *
 *  @return 返回一个 NSAttributedString  设置label的NSAttributedString为该返回值，并sizeTofit该label
 */
+ (NSAttributedString *)getMutableStringWithStr:(NSString *)str withLineSpace:(NSInteger )space;

#pragma mark -- 时间相关
/**根据日期返回NSDate对象(日期格式: 2014-01-02 03:22:10)*/
+ (NSDate *)getNSDateFromString:(NSString *)dateStr;

/** 根据日期返回NSDate对象(日期格式: 2014-01-02)*/
+ (NSDate *)getNSDateFromSimpleDateString:(NSString *)dateStr;

/** 根据NSDate返回String对象(格式: 2014/01/02)*/
+ (NSString *)getStringFromNSDate:(NSDate *)destDate;

/** 根据日期表示返回中文的（周二 12月6日）(日期格式: 2014-01-02 03:22:10)*/
+ (NSString *)getChineseWeekdayWithDateString:(NSString *)dateStr;

/** 根据日期返回时间表示 19:30 (日期格式: 2014-01-02 03:22:10)*/
+ (NSString *)getTimeStrWithString:(NSString *)dateStr;

/** 根据日期返回时间表示,以标准形式定义 (日期格式: 2014-01-02 03:22:10)*/
+ (NSString *)getTimeStrWithString:(NSString *)dateStr FormatterStr:(NSString *)fStr;

#pragma mark - 富文本部分字体飘灰 text:源   highlightText:高亮部分  stringColor:不高亮时候显示的颜色   highlightColor:高亮字体的颜色  value:高亮字体大小
+ (NSMutableAttributedString *)setupAttributeString:(NSString *)text highlightText:(NSString *)highlightText  stringColor:(UIColor *)stringColor  highlightColor:(UIColor *)highlightColor  highlightValue:(id)value;

#pragma mark 颜色转换为图片
+(UIImage*) createImageWithColor:(UIColor*) color;
#pragma mark -  延时执行

+ (void)doSomething:(void (^)(void))functions
     afterDelayTime:(double)delayInSeconds;

+ (void)doSomethingLater:(void (^)(void))functions;


#pragma mark - 主线程执行

+ (void)doSomethingOnMainThread:(void (^)(void))functions;

+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size;

@end
